"""
session方法维持一个会话  获取cookie
"""
import re
import requests

session = requests.session()
# 会话会保存请求头中的需要的参数 但是这些参数要自己加进去 所以现在请求头为空

# 接下来就是为了反反爬 在请求头中加上必要的参数  User-Agent、cookie、X-Csrf-Token。。。
session.headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',

}
# 得到cookie 在get请求后会话会自动保存cookie到请求头中
index = session.get('http://www.zjmazhang.gov.cn/hdjlpt/published?via=pc')

# 获取csrf  通过正则在上面的get请求中的text中获取csrf  结果是个列表使用时用下标[0]取值
csrf = re.findall(r'var _CSRF = \'(.*?)\';',index.text)
print(csrf[0])

# 在会话中加入csrf
session.headers['X-Csrf-Token'] = csrf[0]

# 将所需要的参数都准备好后就可以进行爬取数据了  要注意的是不再用requests进行请求而是用前面创建好的session对象进行请求
res = session.post('http://www.zjmazhang.gov.cn/hdjlpt/letter/pubList', data={
    'offset': 0,
    'limit': 20,
    'site_id': 759010,
    'time_from': 1700323200,
    'time_to': 1731859199
})
print(res.request.headers)
print(res.json())


